export module JsonAxios;
import std;
import <boost/json.hpp>;

using namespace boost;

export namespace JsonAxios {
	const std::string res_200_null = json::serialize(json::object{ {"code", "200"}, {"data", nullptr } });
	json::object res_200(const json::value& value) {
		json::object response{
			{"code", "200"},
			{"data", value}
		};
		return response;
	}
	template<typename T>
	concept JsonArray = std::same_as<T, json::object> || std::same_as<T, json::value>;

	template<JsonArray T>
	json::object res_200_arr(const std::vector<T>& vec) {
		json::array json;
		for (const auto& item : vec) {
			json.push_back(item);
		}
		return res_200(json);
	}
}